package com.itheima.d5_abstract2;

/**
 * 多个类中只要有重复代码（包括相同的方法签名），我们都应该抽取到父类中去，此时，父类中就有可能存在只有方法签名的方法，
 * 这时，父类必定是一个抽象类了，我们抽出这样的抽象类，就是为了更好的支持多态。(抽象类父类有的方法，子类肯定也重写也有，就实现了多态)
 *
 * 1、抽象类的应用场景和好处是什么？
 * 两种主要的应用场景，一种是：用抽象类，我们可以把子类中相同的代码，包括方法签名都抽上来，这样能更好的支持多态，以提高代码的灵活性。
 * 一种是：反过来用，我们不知道系统未来具体的业务实现时，我们可以先定义抽象类，将来让子类去继承实现，以方便系统的扩展。
 */
public class Test {
    public static void main(String[] args) {
        // 目标：掌握抽象类的好处.
        Animal a = new Cat();
        a.setName("叮当猫");
        a.cry(); // 更好的支持了多态
    }
}
